#coding=utf-8
#author：zhujingyuan
import pymongo

class MongodbExcute:
    def __init__(self,ip,db,port):
        self.ip=ip
        self.port=port
        self.db=db


    #连接MongoDB数据库
    def __getConnect(self):
        if not self.db:
            raise NameError("没有设置数据库信息")
        self.myclient=pymongo.MongoClient(self.ip,self.port)
        self.mydb=self.myclient[self.db]
        if not self.mydb:
            raise NameError("连接数据库失败")
        else:
            return self.mydb
    #根据指定条件查询,查找多个
    def findManyExcute(self,col,query={}):

        cur=self.__getConnect()
        mycol = cur[col]
        mydoc=mycol.find(query)
        for x in mydoc:
            return x

    # 查询单条记录，不指定查询条件
    def findOne(self,col):
        cur=self.__getConnect()
        mycol=cur[col]
        mydoc=mycol.find_one()
        print(mydoc)

    #查询所有记录，不指定查询条件
    def findMany(self,col):
        cur=self.__getConnect()
        mycol=cur[col]
        mydoc=mycol.find()
        for x in mydoc:
            print(x)


    #返回指定条数的查询记录
    def findlimitExcute(self,col,num,query={}):
        cur=self.__getConnect()
        mycol=cur[col]
        mydoc=mycol.find(query).limit(num)
        for x in mydoc:
            return x

    #查询指定字段,指定条数的数据
    def findfixdataExcute(self,col,num,query={}):
        cur=self.__getConnect()
        mycol=cur[col]
        mydoc=mycol.find({},query).limit(num)
        for x in mydoc:
            print(x)






# mongodb=MongodbExcute(ip='192.168.20.27',port=27017,db='Welink')
# mongodb.findfixdataExcute(col='BindAccountDocument',query={"_id":0,"Mobile":1},num=2)  #我们可以使用 find() 方法来查询指定字段的数据，将要返回的字段对应值设置为 1。
#



